using NHibernate.Validator.Constraints;
using SharpArch.Core.PersistenceSupport;
using SharpArch.Core.DomainModel;
using System;

namespace GoldenBicycleCompany.Core
{
    public class CreditCardInformation : Entity
    {
        public CreditCardInformation() { }
		
		[NotNull]
		public virtual Customer Customer { get; set; }

		[DomainSignature]
		[CreditCardNumber]
		public virtual string CreditCardNumber { get; set; }

		[DomainSignature]
        [Size(Min=2011)]
		public virtual int ExpirationYear { get; set; }

		[DomainSignature]
        [Size(Min=1, Max=12)]
		public virtual int ExpirationMonth { get; set; }

		[DomainSignature]
		[NotNullNotEmpty]
		public virtual string CVV { get; set; }
    }
}
